use napi_derive_ohos::napi;
use napi_ohos::Result;

/// 用户结构体，表示一个用户及其偏好（由于 napi 不支持 u64，我们使用 u32）
#[derive(Debug)]
struct User {
    id: u32,
    preferences: Vec<String>,
}

/// 根据用户偏好生成推荐列表的内部逻辑函数（不会导出给鸿蒙）
fn generate_recommendations(user: &User) -> Vec<String> {
    user.preferences
        .iter()
        .map(|item| format!("Recommended based on your interest in {}", item))
        .collect()
}

/// 对外暴露的接口：接受用户ID和偏好列表，返回推荐字符串数组
/// 可供 HarmonyOS 使用的接口函数
#[napi]
pub fn get_recommendations(user_id: u32, preferences: Vec<String>) -> Result<Vec<String>> {
    let user = User { id: user_id, preferences };
    let recommendations = generate_recommendations(&user);
    Ok(recommendations)
}

